package models

import (
	"order_srv/basic/config"
	"time"
)

// 紧急求助
type EmergencyHelp struct {
	Id          int32     `gorm:"column:id;type:int;primaryKey;not null;" json:"id"`
	OrderId     uint32    `gorm:"column:order_id;type:int UNSIGNED;comment:订单id;not null;" json:"order_id"`                                    // 订单id
	UserId      uint32    `gorm:"column:user_id;type:int UNSIGNED;comment:用户id;not null;" json:"user_id"`                                      // 用户id
	Location    string    `gorm:"column:location;type:varchar(100);comment:位置信息;not null;" json:"location"`                                    // 位置信息
	Description string    `gorm:"column:description;type:varchar(255);comment:求助描述;not null;" json:"description"`                              // 求助描述
	Status      string    `gorm:"column:status;type:varchar(20);comment:处理状态;pending, processing, completed;default:'pending';" json:"status"` // 处理状态
	CreateAt    time.Time `gorm:"column:create_at;type:datetime;not null;default:CURRENT_TIMESTAMP;" json:"create_at"`
	UpdateAt    time.Time `gorm:"column:update_at;type:datetime;not null;default:CURRENT_TIMESTAMP;" json:"update_at"`
	DeleteAt    time.Time `gorm:"column:delete_at;type:datetime;default:NULL;" json:"delete_at"`
}

func (e *EmergencyHelp) TableName() string {
	return "emergency_help"
}

// 创建紧急求助记录
func (e *EmergencyHelp) CreateEmergencyHelp() error {
	return config.DB.Create(&e).Error
}

// 更新紧急求助状态
func (e *EmergencyHelp) UpdateStatus() error {
	return config.DB.Model(&EmergencyHelp{}).Where("id = ?", e.Id).Update("status", e.Status).Error
}
